Artificial neural networks, known also as simply neural networks, grew out of attempts to understand the workings of the human brain. A neural network is a processing system which exists in a massively parallel form, and includes many individual processing elements known as neurons. The neuron receives several inputs and is connected to other neurons through the equivalent of synapses. In one type of neural network, known as a competitive neural network, a neuron conditions the inputs by weighting functions, sums the weighted inputs, and activates an overall output ("fires") if its weighted sum exceeds the weighted sums of other neurons in the layer. The weights are adjusted through a process of training in which an output in the neuron's layer or some other layer is compared to an expected output and a feedback signal adjusts the weights until the neural network provides the expected output.
Neural networks are useful for heuristic tasks for which normal computing systems are inefficient or inaccurate, such as speech recognition and synthesis, pattern recognition, artificial vision, and the like. However, some features of known neural networks prevent their use for solving problems for which they would normally be ideally suited. For example, a neural network may be used to model a manufacturing process. The manufacturing process, while generally deterministic, is nonetheless affected by many variables and thus is difficult to model using normal mathematical models. This neural network would receive measured characteristics of a manufactured good as inputs, and estimate unknown characteristics of the manufactured good such as quality and performance compared to specifications. However, if this neural network were trained using a given set of inputs, it would require all of these inputs to be available in order to make an accurate prediction. Frequently in manufacturing processes, measurements are lost or unobtainable. Conventional neural networks are unable to adjust for the missing measurement without distorting the predicted outputs and readjusting the weights. What is needed, then, is a neural network and a neural processing element which allows neural networks to be used for such tasks.